#include "homepage.h"
#include "mainwindow.h"
#include "singleinstancechecker.h"

#include "serialportwrapper.h"

#include <QApplication>
#include <QDebug>
#include <QFile>

int main(int argc, char *argv[])
{
    // 启用高 DPI 缩放
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    // 使用高 DPI 像素图
    QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
    // 设置消息输出模式
    qSetMessagePattern("[%{time yyyy-MM-dd hh:mm:ss.zzz}] [%{type}] %{message}");

    QApplication app(argc, argv);

    // 加载并应用样式表文件
    QFile file(":/qss/style.qss");
    if (file.open(QFile::ReadOnly)) {
        QString styleSheet = QLatin1String(file.readAll());
        app.setStyleSheet(styleSheet);
    }

    MainWindow window;
    window.show();
    window.setMinimumHeight(400);
    window.setMinimumWidth(1000);

    SerialPortWrapper wrapper;
    QObject::connect(&wrapper, &SerialPortWrapper::errorOccurred, [](const QString &err) {
        qDebug() << "Serial Error:" << err;
    });

    if (wrapper.openPort("COM1", {QSerialPort::Baud115200})) {
        qDebug() << "Open success";
    } else {
        qDebug() << "Open failed";
    }

    return app.exec();
}
